package com.sdstc.modules.service;

import com.sdstc.modules.eneity.OrgDistributeParamVo;
import com.sdstc.modules.eneity.OrgEntity;
import com.sdstc.modules.query.AdjustQuery;
import com.sdstc.modules.query.ExportCustomQuery;
import com.sdstc.modules.vo.*;

import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author ：wk
 * @date ：Created in 2022/10/21 11:51
 */
public interface OrgService {

    AdjustMentVo getAdjustAfter(AdjustQuery adjustQuery);

    OrgEntity saveOrg(OrgEntity orgEntity);

    OrgEntity updateOrg(OrgEntity orgEntity);

    void deleteOrgById(String id);

    List<OrgTreeVo> getOrgTree(String orgId);

    List<OrgTreeVo> getOrgSimpleTree(String orgId);

    List<OrgTreeVo> getOrgChartList(String orgId);

    List<OrgTreeSelectVo> getOrgTreeSelectVo(String orgId);

    OrgDetailVo getOrgDetailView(String orgId);

    OrgAdjustVo queryOrgDetail(String orgId);

    InstitutionDetailVo queryDetail(String orgId,String officeId,String departmentId,String tempVersionId);

    List<OrgEntity> queryOrg(String orgId,String orgName);

    List<OrgEntity> queryOfficeOrg(String orgId,String orgName);

    InstitutionDetailVo queryOrgPeopleDetail(String orgId,String officeId,String departmentId,String tempId);

    BarEchartsVo queryBarEchartsData(String orgId);

    void exportExcel(HttpServletResponse response, String orgId);

    void exportPersonExcel(HttpServletResponse response, String orgId);

    void exportYearExcel(HttpServletResponse response, String orgId);

    void exportPersonYearExcel(HttpServletResponse response, String orgId);

    Boolean selectRule(SelectRuleVo selectRuleVo);

    HashMap<String,String> getJNOrg();

    void exportCustom(HttpServletResponse response, ExportCustomQuery exportCustomQuery);

    Map<String, OrgTreeVo>  getOrgId2Map(String orgId);

    List<OrgEntity> getSameLevelOrg(String orgId);

    List<OrgTreeVo> getOrgSimpleTreeSelect(String orgId);

    void orgDistribute(List<OrgDistributeParamVo> list);
}
